import uvicorn
from fastapi import FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
from fastapi.responses import StreamingResponse
from rag_eval import invoke_rag, chat_history

#1、创建容器实例
app=FastAPI()
#2、挂载静态文件，方便后续浏览器加载页面,浏览可以在需要的时候进行快速加载
app.mount("/static",StaticFiles(directory="./templates"))
#3、创建API实例
#3、1创建根页面,当请求访问http://127.0.0.1:8089/时，返回index.html页面
@app.get("/")
async def root():
    return FileResponse("./templates/index.html")
#3、2创建暴露给前端的调用接口，让前端发信息给后端，后端进行返回
@app.get("/stream_response")
async def stream_response(query: str):
    return StreamingResponse(invoke_rag(query,1,chat_history))
#4、启动服务
if __name__ == "__main__":
    uvicorn.run(app,host="127.0.0.1",port=8089)
